import create from '../../store/create'
// Component(
create({
  properties: {
    // 这里定义属性，属性值可以在组件使用时指定
    back: {//是否显示返回
      type: Boolean,
      value: false,
    },
    // 导航栏 占位
    barHolder:{
      type:Boolean,
      value:true
    },
    background: {//导航栏背景色
      type: String,
      value: '#ffffff',//默认
      observer: function(newVal,oldVal,changedPath){
        if(!newVal){
          let obj = {};
          obj[changedPath[0]] = oldVal;
          this.setData(obj);
        }
      }
    },
    placeholderBg: {//导航栏占位栏背景色
      type: String,
      value: 'transparent',//默认
      observer: function(newVal,oldVal,changedPath){
        if(!newVal){
          let obj = {};
          obj[changedPath[0]] = oldVal;
          this.setData(obj);
        }
      }
    },
    color: {//导航栏字体色
      type: String,
      value: '#000000',//默认
      observer: function(newVal,oldVal,changedPath){
        if(!newVal){
          let obj = {};
          obj[changedPath[0]] = oldVal;
          this.setData(obj);
        }
      }
    },
    fontSize: {//导航栏字大小
      type: String,
      value: '40rpx',//默认
      observer: function(newVal,oldVal,changedPath){
        if(!newVal){
          let obj = {};
          obj[changedPath[0]] = oldVal;
          this.setData(obj);
        }
      }
    },
    title: {//导航栏标题
      type: String,
      value: 'none', //默认
      observer: function(newVal,oldVal,changedPath){
        // console.log(newVal,oldVal,changedPath);
        if(!newVal){
          let obj = {};
          obj[changedPath[0]] = oldVal;
          this.setData(obj);
        }
      }
    },
    fixed: {//导航栏是否fixed定位
      type: Boolean,
      value: true, //默认
      observer: function(newVal,oldVal,changedPath){
        // console.log(newVal,oldVal,changedPath);
        if(newVal !== false && newVal !== true){
          let obj = {};
          obj[changedPath[0]] = oldVal;
          this.setData(obj);
        }
      }
    },
  },
  data: {
    // 这里是一些组件内部数据
    height: 44,//导航栏高度,
    paddingTop: 20,//导航栏上内边距对应状态栏高度
    showHomeButton: false,//是否显示返回首页
    show: true,//是否显示导航栏
    titleWidth:200,//标题宽度 超过文字显示省略号
  },
  attached: function(option){
    this.init()
  },
  methods: {
    init(){
      //检测首页是否在当前页面栈中
      let pages = getCurrentPages();
      let showHomeButton = false;
      if(pages.length < 2 && pages[0].route != __wxConfig.pages[0]){
        showHomeButton = true;
      }
      // 获取导航栏高度
      let systemInfo = wx.getSystemInfoSync()
      // 获取胶䑋菜单
      let gule = wx.getMenuButtonBoundingClientRect()
      // this.systemInfo = systemInfo
      let reg = /ios/i;
      // 状态栏高度
      let pt = systemInfo.statusBarHeight || 20
      let h = 44;//导航状态栏高度
      // 胶䑋 上边距
      // let mt = gule.top - pt
      // 导航栏高度
      // h = gule.height + mt*2
      // 标题 宽度
      let tw = systemInfo.windowWidth - (systemInfo.windowWidth - gule.left) * 2
      if(reg.test(systemInfo.system)){
          h = 44;
      }else{
          h = 48;
      }

      this.setData({
        height:h,
        paddingTop: pt,
        showHomeButton: showHomeButton,
        titleWidth:tw
      })
    },
    // 这里是一个自定义方法
    navigateBack(){
      console.log("navigateBack");
      let pages = getCurrentPages();
      if(pages.length < 2 && pages[0].route != __wxConfig.pages[0]){
        wx.reLaunch({url:'/'+__wxConfig.pages[0]})
      }else{
        wx.navigateBack({delta:1});
      }
    },
    navigateBackHome(){
      wx.reLaunch({url:'/'+__wxConfig.pages[0]})
    },
    /**
     * 切换导航栏显示
      */
    toggleShow(){
      if(!this.data.show){
        this.setData({ show: true });
      }
    },
    /**
     * 切换导航栏隐藏
      */
    toggleHide() {
      if (this.data.show) {
        this.setData({ show: false });
      }
    }
  }
})